dxp-ux
[POST] create product (TMF 637)
This operation allows to resend activation link in cases when the URL has expired, or the customer has not received it.
URL
https://[localhost]:[port]/dxp-ux/v1/{businessId}/product
URL PARAMS
name | type | description | required |
---|---|---|---|
businessId | string | 2 letter ISO 3166 country code (TT, BB, JM, PA, PR etc.) identifying the business unit. | Y(PA) |
Headers
name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
---|---|---|---|
client_id | string | The client_id identifying the channel. Minimum characters: 5 | Y(PA) |
client_secret | string | Password associated with the client_id. Minimum characters: 5 | Y(PA) |
X-Correlation-ID | string | Identifier that correlates HTTP request between a client and server. Any identification model (UUDI, checksum, etc.) can be used, as long as it is a unique value to differentiate a transaction. | Y(PA) |
Data Model - Request
name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
---|---|---|---|
productSpecification | object | A ProductSpecification is a detailed description of object made available externally in the form of a ProductOffering to customers. | Y(PA) |
productSpecification.id | string | Unique identifier of the product | Y(PA) |
@baseType | string | When sub-classing, this defines the super-class Note for PA Bango usecase: This value is "product" | Y(PA) |
@type | string | When sub-classing, this defines the sub-class entity name Note for PA Bango usecase: This value is "OTT" | Y(PA) |
@referredType | string | target OTT or streaming Note for PA Bango usecase (for DISNEY OTT): This value is "DISNEY" | Y(PA) |
billingAccount | object | BillingAccount reference. A BillingAccount is a detailed description of a bill structure. | Y(PA) |
billingAccount.id | string | Unique identifier of the billing account | Y(PA) |
billingAccount.contact[] | array | Contact details of the billingAccount | Y(PA) |
billingAccount.contact[].contactType | string | contactType of billingAccount | N(PA) |
billingAccount.contact[].contactMedium[] | array | Medium of contact for billingAccount | Y(PA) |
billingAccount.contact[].contactMedium[].characteristic | object | Characteristics of the billingAccount contactMedium | Y(PA) |
billingAccount.contact[].contactMedium[].characteristic.emailAddress | string | email Address to resend the activation link | Y(PA) |
billingAccount.'@baseType' | string | When sub-classing, this defines the super-class | N(PA) |
billingAccount.'@type' | string | When sub-classing, this defines the sub-class entity name for billingAccount | N(PA) |
billingAccount.contact[] subResource request and response -Data Model
field | value | description | required (mandatory-Y, optional-N, Not applicable- N/A) | examples |
---|---|---|---|---|
contactType | string | contactType of billingAccount | N(PA) | PA: "contactType": "primary" |
contactMedium[] | array | Medium of contact for billingAccount | Y(PA) | PA: "contactMedium": [ { "characteristic": { "emailAddress": "abc@gmail.com" } } ] |
contactMedium[].characteristic | object | Characteristics of the billingAccount contactMedium | Y(PA) | PA:"characteristic": { "emailAddress": "donipudi-sai.vaishnavi@capgemini.com" } |
contactMedium[].characteristic.emailAddress | string | email Address of the billingAccount | Y(PA) | PA: "emailAddress": "abc@gmail.com" |
Data Model Response
name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
---|---|---|---|
id | string | id of the entitlement/product | Y(PA) |
status | string | status of the product Note for PA Bango usecase: This value "created" | Y(PA) |
productSpecification | object | A ProductSpecification is a detailed description of object made available externally in the form of a ProductOffering to customers. | Y(PA) |
productSpecification.id | string | Unique identifier of the product | Y(PA) |
@baseType | string | When sub-classing, this defines the super-class Note for PA Bango usecase: This value is "product" | Y(PA) |
@type | string | When sub-classing, this defines the sub-class entity name Note for PA Bango usecase: This value is "OTT" | Y(PA) |
@referredType | string | target OTT or streaming Note for PA Bango usecase (for DISNEY OTT): This value is "DISNEY" | Y(PA) |
billingAccount | object | BillingAccount reference. A BillingAccount is a detailed description of a bill structure. | Y(PA) |
billingAccount.id | string | Unique identifier of the billing account | Y(PA) |
billingAccount.contact[] | array | Contact details of the billingAccount | Y(PA) |
billingAccount.contact[].contactType | string | contactType of billingAccount | N(PA) |
billingAccount.contact[].contactMedium[] | array | Medium of contact for billingAccount | Y(PA) |
billingAccount.contact[].contactMedium[].characteristic | object | Characteristics of the billingAccount contactMedium | Y(PA) |
billingAccount.contact[].contactMedium[].characteristic.emailAddress | string | email Address to resend the activation link | Y(PA) |
billingAccount.'@baseType' | string | When sub-classing, this defines the super-class | N(PA) |
billingAccount.'@type' | string | When sub-classing, this defines the sub-class entity name for billingAccount | N(PA) |
Key considerations
- Please refer the examples from the following URL - DXP UX - POST Product
PA Implementation (Bango usecase)
1.. Following are the mandatory fields in the request:
- productspecification.id (refers to product id)
- "@type" should always be "OTT"
- "@baseType" should always be"product"
- "@referredType" varies based on streaming. For DISNEY streaming value is "DISNEY".
- billingAccount.contact[].contactMedium[].characteristic.emailAddress (email Address to resend the activation link)
- billingAccount.id (refers to the billingAccount number)
2. Once entitlement is available in Bango system user will receive Activation URL to the mentioned emailAddress in the request.
Possible Error Scenarios for PA :
IF WE ARE PASSING INVALID '@type' IN REQUEST BODY
{
"errors": [
{
"code": 400,
"message": "VALIDATION:INVALID_BOOLEAN",
"description": "Mandatory field @type is not specified or Incorrect value is received. The expected value is OTT"
}
]
}
IF WE ARE PASSING INVALID '@referredType' IN REQUEST BODY
{
"errors": [
{
"code": 400,
"message": "Bango: Error while creating an entitlement",
"description": "BAD_REQUEST-ProductKey is invalid."
}
]
}